local HealingComm = LibStub("LibHealComm-4.0")

-- 创建一个事件处理对象
local eventHandler = CreateFrame("Frame")

-- 圣光术技能ID
local HOLY_LIGHT_SPELL_ID = 27136

-- 注册治疗通信回调
HealingComm.RegisterCallback(eventHandler, "HealingComm_HealingDone", function(event, srcGUID, spellID, destGUID, amount, overhealing, critical, ...)
    -- 当施放的是圣光术时
    if spellID == HOLY_LIGHT_SPELL_ID then
        -- 获取目标信息
        local target = UnitName("target")
        local effectiveHeal = amount - overhealing

        -- 打印预测结果
        if critical then
            print(string.format("圣光术暴击！预计治疗 %s：%d（总治疗量 %d，过量 %d）",
                    target or "未知目标", effectiveHeal, amount, overhealing))
        else
            print(string.format("圣光术预计治疗 %s：%d（总治疗量 %d，过量 %d）",
                    target or "未知目标", effectiveHeal, amount, overhealing))
        end
    end
end)

-- 事件监听（示例：当开始施法时）
eventHandler:RegisterEvent("UNIT_SPELLCAST_START")
eventHandler:SetScript("OnEvent", function(self, event, unit, _, spellID)
    if unit == "player" and spellID == HOLY_LIGHT_SPELL_ID then
        -- 请求治疗预测数据
        HealingComm:RequestHealingInfo(spellID, UnitGUID("target"))
    end
end)